package com.ophiux.cs.domain.consultBase.repositories;

import com.ophiux.cs.domain.consultBase.model.entity.Doctor;
import com.ophiux.cs.domain.consultBase.model.valueobj.CSDoctorsResult;
import com.ophiux.cs.domain.consultBase.model.valueobj.CSTypeResult;
import com.ophiux.cs.domain.consultBase.model.valueobj.DoctorQueryObj;
import com.ophiux.utils.exception.OphiuxRepositoryException;

import java.util.List;

public interface IDoctorRepository {
	/**
	 * 新增医生
	 * @param doctor
	 * @throws OphiuxRepositoryException
	 */
	public void  createDoctor(Doctor doctor) throws OphiuxRepositoryException;

	/**
	 * 更新医院
	 * @param doctor
	 * @throws OphiuxRepositoryException
	 */
	public void updateDoctor(Doctor doctor) throws OphiuxRepositoryException ;

	/**
	 * 删除医院
	 * @param doctorId
	 * @throws OphiuxRepositoryException
	 */
	public void deleteDoctor(String doctorId) throws OphiuxRepositoryException ;

	/**
	 * 查询所有医生
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	public List<Doctor> selectDoctor() throws OphiuxRepositoryException ;

	/**
	 * 查询
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	public List<CSDoctorsResult> getCSDoctors(DoctorQueryObj doctor) throws OphiuxRepositoryException ;
	/**
	 * 查询
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	public int getCSDoctorsCount(DoctorQueryObj doctor) throws OphiuxRepositoryException ;
	/**
	 * 根据科室ID查询
	 * @param DOCTOR_ID
	 * @throws OphiuxRepositoryException
	 */
	public Doctor getDoctorByID(String DOCTOR_ID) throws OphiuxRepositoryException ;
	/**
	 * 根据医生ID查询咨询方式
	 * @param DOCTOR_ID
	 * @throws OphiuxRepositoryException
	 */
	public List<CSTypeResult> getCSTypeByDoctorId (String DOCTOR_ID) throws OphiuxRepositoryException ;

}
